<?php
/**
 * GameController
 * 
 * @author
 * @version 
 */
require_once 'Zend/Controller/Action.php';
class Admin_ProductCategoryController extends Sunnet_Controller_Action
{
	var $_arrParam;
	public function init()
    {
//    	Truyền các tham số nhận được ra view
    	$this->_arrParam = $this->_request->getParams();
    	$this->view->arrParam = $this->_arrParam;
    	if (!$this->_arrParam['page']) {
    		$this->_arrParam['page'] = 1;
    	}
    	if (!$this->_arrParam['line_per_page']) {
    		$this->_arrParam['line_per_page'] = 10;
    	}
         Zend_Loader::loadClass('Admin_Models_MenuModel');
         $db = new Admin_Models_MenuModel();
         $mainmenu = $db->loadmainmenu();
         $this->view->mainmenu = $mainmenu; 
    }

    public function preDispatch(){
		$template_path = TEMPLATE_PATH . "/admin/default/";
		$this->loadTemplate($template_path,'template.ini','template');
    	$auth = Zend_Auth::getInstance();
    	if (!$auth->hasIdentity() || !$auth->getIdentity()->admin) {
    		$this->_forward('login','index','admin');//,$this->_arrParam);
    	}
    }
    /**
     * The default action - show the home page
     */
    public function indexAction ()
    {
        // Zend_Debug::dump($this->_arrParam['controller']);
//    	Khai báo biến
    	$db = Zend_Registry::get('connectDB');
    	$this->setPagination($db->select()->from('productcategory',array('ProductCategoryID','Name'))->where('status = 1'), $this->_arrParam);
    }
    public function addAction(){
//    	Load model sử dụng trong action

    	Zend_Loader::loadClass('Admin_Forms_ProductCategoryForm');
    	Zend_Loader::loadClass('Admin_Models_ProductCategoryModel');
    	
//    	Khai báo biến

    	$form = new Admin_Forms_ProductCategoryForm(array('submit'			=> 'Thêm',
    												'cancel_link'			=> '/admin/product-category'));
    	$model = new Admin_Models_ProductCategoryModel();
    	
//    	Nếu action là post thì thực hiện thêm nhà phát hành

    	if ($this->_request->isPost()){
    		
//    		Kiểm tra dữ liệu nhập vào đã thỏa hết các điều kiện chưa

    		if ($form->isValid($this->_arrParam)){
    			try {
					$data = $form->getValues();
    				$model->insert($data);
    				$this->_redirect('/admin/product-category');
    			} catch (Exception $e) {
    				echo $e;
    			}
    		}
    	}
//    	Truyền biến ra view

    	$this->view->form = $form;
    }
    public function editAction(){
//    	Load model sử dụng trong action

    	Zend_Loader::loadClass('Admin_Forms_ProductCategoryForm');
    	Zend_Loader::loadClass('Admin_Models_ProductCategoryModel');
    	
//    	Khai báo biến

    	$form = new Admin_Forms_ProductCategoryForm(array('submit'			=> 'Sửa',
    												'cancel_link'			=> '/admin/product-category'));
    	$model = new Admin_Models_ProductCategoryModel();
		$where = $model->getAdapter()->quoteInto('ProductCategoryID = ?', $this->_arrParam['id']);
    	
//    	Nếu action là post thì thực hiện sửa nhà phát hành

    	if (!$this->_arrParam['id']){
    		$this->_redirect('/admin/product-category');
    	}
    	if ($this->_request->isPost()){
    		
//    		Kiểm tra dữ liệu nhập vào đã thỏa hết các điều kiện chưa

    		if ($form->isValid($this->_arrParam)){
    			try {
    				
//    				Update dữ liệu

    				$model->update($form->getValues(),$where);
    				$this->_redirect('/admin/product-category');
    			} catch (Exception $e) {
    				echo $e;
    			}
    		}
    	}else{
	    	$cp_info = $model->fetchRow($where);
	    	$form->setDefaults($cp_info->toArray());
    	}
//    	Truyền biến ra view

    	$this->view->form = $form;
    	$this->render('add');
    }
    public function deleteAction(){
//    	Load model sử dụng trong action

    	Zend_Loader::loadClass('Admin_Models_ProductCategoryModel');
    	
//    	Khai báo biến

    	$model = new Admin_Models_ProductCategoryModel();
		$where = $model->getAdapter()->quoteInto('ProductCategoryID = ?', $this->_arrParam['id']);
    	
//		Tắt view

		$this->_helper->viewRenderer->setNoRender();
//    	Xóa record

		try {
			$model->update(array('status' => '0'), $where);
//    		$model->delete($where);
    		$this->_redirect('/admin/product-category');
    	} catch (Exception $e) {
    		echo $e;
    	}
    }
    
}
